<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>db_env_set_func_region_map</title>
    <link rel="stylesheet" href="apiReference.css" type="text/css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.73.2" />
    <link rel="start" href="index.html" title="Berkeley DB C API Reference" />
    <link rel="up" href="setfunc.html" title="Appendix C.  Berkeley DB Application Space Static Functions" />
    <link rel="prev" href="db_env_set_func_realloc.html" title="db_env_set_func_realloc" />
    <link rel="next" href="db_env_set_func_rename.html" title="db_env_set_func_rename" />
  </head>
  <body>
    <div xmlns="" class="navheader">
      <div class="libver">
        <p>Library Version 11.2.5.3</p>
      </div>
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">db_env_set_func_region_map</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="db_env_set_func_realloc.html">Prev</a> </td>
          <th width="60%" align="center">Appendix C. 
                Berkeley DB Application Space Static Functions
        </th>
          <td width="20%" align="right"> <a accesskey="n" href="db_env_set_func_rename.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="sect1" lang="en" xml:lang="en">
      <div class="titlepage">
        <div>
          <div>
            <h2 class="title" style="clear: both"><a id="db_env_set_func_region_map"></a>db_env_set_func_region_map</h2>
          </div>
        </div>
      </div>
      <pre class="programlisting">#include &lt;db.h&gt;

int
db_env_set_func_region_map(int (*func_region_map)(DB_ENV *dbenv, 
    char *path, size_t len, int *is_create, void **addr),
    int (*func_region_unmap)(DB_ENV *dbenv, void *addr));  </pre>
      <p>
         The Berkeley DB library optionally uses the ability to create shared
         memory regions (which may or may not be backed by physical files). 
         The memory will be used as a shared memory region for synchronization
         between Berkeley DB threads/processes; while the returned memory may
         be of any kind (for example, anonymous memory), it must be able to
         support semaphores.
    </p>
      <p>
         The <code class="function">db_env_set_func_region_map()</code> function configures all operations
         performed by a process and all of its threads of control, not
         operations confined to a single database environment.
    </p>
      <p>
         Although the <code class="function">db_env_set_func_region_map()</code> function may be called at any
         time during the life of the application, it should normally be called
         before making calls to the <a class="xref" href="envcreate.html" title="db_env_create">db_env_create</a> or
         <a class="xref" href="dbcreate.html" title="db_create">db_create</a> methods.
    </p>
      <p>
         The <code class="function">db_env_set_func_region_map()</code> <span>
                  function returns a non-zero error value on failure and 0 on success.
            </span>
    </p>
      <div class="sect2" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="idp55696776"></a>Parameters</h3>
            </div>
          </div>
        </div>
        <div class="sect3" lang="en" xml:lang="en">
          <div class="titlepage">
            <div>
              <div>
                <h4 class="title"><a id="idp55696968"></a>func_region_map</h4>
              </div>
            </div>
          </div>
          <p>
                          The <span class="bold"><strong>func_region_map</strong></span> parameter is the
                          function which creates shared memory regions.  The function takes 5
                          parameters:
                     </p>
          <div class="itemizedlist">
            <ul type="disc">
              <li>
                <p>
                                <span class="bold"><strong>dbenv</strong></span>
                            </p>
                <p>
                                The <span class="bold"><strong>dbenv</strong></span> parameter is the enclosing
                                database environment handle.  This handle is provided to uniquely
                                identify a shared memory region: the <span class="bold"><strong>dbenv</strong></span> parameter and the path are a unique
                                identifier pair for mapping any new region, and the <span class="bold"><strong>dbenv</strong></span> parameter and the address are a unique
                                identifier pair for unmapping any region.
                            </p>
              </li>
              <li>
                <p>
                                <span class="bold"><strong>path</strong></span>
                            </p>
                <p>
                                The <span class="bold"><strong>path</strong></span> parameter is the name of the
                                region.  Repeated requests for the shared regions of the same name, in
                                the same database environment, should return a reference to the same
                                memory.
                            </p>
              </li>
              <li>
                <p>
                                <span class="bold"><strong>len</strong></span>
                            </p>
                <p>
                                The <span class="bold"><strong>len</strong></span> parameter is the length, in
                                bytes, needed for the region.
                            </p>
              </li>
              <li>
                <p>
                                <span class="bold"><strong>is_create</strong></span>
                            </p>
                <p>
                                The memory referenced by the <span class="bold"><strong>is_create</strong></span> parameter will be non-zero if flags
                                to Berkeley DB allowed creation of the mapped region; the memory
                                referenced by the <span class="bold"><strong>is_create</strong></span> parameter
                                must be set to non-zero if the region is created by the <span class="bold"><strong>func_region_map</strong></span> function, and set to zero if
                                the region is not created by the function.  This returned information
                                will determine if the region is subsequently initialized by Berkeley
                                DB.
                            </p>
              </li>
              <li>
                <p>
                                <span class="bold"><strong>addr</strong></span>
                            </p>
                <p>
                                The <span class="bold"><strong>addr</strong></span> parameter is the memory
                                location into which a pointer to the region or mapped file is
                                returned.
                            </p>
              </li>
            </ul>
          </div>
        </div>
        <div class="sect3" lang="en" xml:lang="en">
          <div class="titlepage">
            <div>
              <div>
                <h4 class="title"><a id="idp55703784"></a>func_region_unmap</h4>
              </div>
            </div>
          </div>
          <p>
                          The <span class="bold"><strong>func_region_unmap</strong></span> parameter is
                          the function which unmaps a shared memory region.  The function takes
                          2 parameters:
                     </p>
          <div class="itemizedlist">
            <ul type="disc">
              <li>
                <p>
                                <span class="bold"><strong>dbenv</strong></span>
                            </p>
                <p>
                                The <span class="bold"><strong>dbenv</strong></span> parameter is the enclosing
                                database environment handle.
                            </p>
              </li>
              <li>
                <p>
                                <span class="bold"><strong>addr</strong></span>
                            </p>
                <p>
                                The <span class="bold"><strong>addr</strong></span> parameter is the value
                                returned by the <span class="bold"><strong>func_region_map</strong></span>
                                function when the region was mapped into memory.
                            </p>
              </li>
            </ul>
          </div>
        </div>
      </div>
      <div class="sect2" lang="en" xml:lang="en">
        <div class="titlepage">
          <div>
            <div>
              <h3 class="title"><a id="idp55701840"></a>See Also</h3>
            </div>
          </div>
        </div>
        <p>
          <a href="../../programmer_reference/program_runtime.html" class="olink">Run-time configuration</a>
     </p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="db_env_set_func_realloc.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="setfunc.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="db_env_set_func_rename.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">db_env_set_func_realloc </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> db_env_set_func_rename</td>
        </tr>
      </table>
    </div>
  </body>
</html>
